
/**
 * 请确保在全局引入了Axios
 * athor: BlackWidow
 */
function replaceUrlParam(url, key, newValue) {
    // 替换已存在的参数
    const regex = new RegExp(`([?&])${key}=([^&]*)(&|$)`);
    if (regex.test(url)) {
        let r = url.replace(regex, `$1${key}=${window.location.origin}${newValue}$3`);
        return r;
    }

    // 新增参数（如果不存在）
    return window.location.origin + url + (url.includes('?') ? '&' : '?') + `${key}=${newValue}`;
}

function BlackAI_TokenSDK() {
    // 添加响应拦截器
    axios.interceptors.response.use(function (response) {
        // 2xx 范围内的状态码都会触发该函数。
        // 对响应数据做点什么
        if (response.data.code == 44) {
            // 跳转到认证中心
            let url = replaceUrlParam(response.data.data, "platform_set_token_url", "/web/pc/v1/set_token/");
            let r = confirm("调用接口需要先继续认证")
            if (r) {
                window.location.href = url;
            }

        }
        return response;
    }, function (error) {
        // 超出 2xx 范围的状态码都会触发该函数。
        // 对响应错误做点什么
        return Promise.reject(error);
    });

}